কন্ট্রোলার তৈরি এবং কনফিগার করা

Web Development - এএসপি ডট (ASP.Net) - কন্ট্রোলার এবং অ্যাকশন মেথড |
1
1

ASP.Net MVC এবং ASP.Net Core MVC অ্যাপ্লিকেশন তৈরি করার সময় Controller হলো এমন একটি গুরুত্বপূর্ণ উপাদান, যা HTTP অনুরোধকে গ্রহণ করে, প্রয়োজনীয় ডেটা প্রস্তুত করে এবং সেই ডেটাকে View এর মাধ্যমে ব্যবহারকারীর কাছে প্রদর্শন করে। কন্ট্রোলারের মাধ্যমে অ্যাপ্লিকেশনের লজিক এবং ইউজার ইন্টারঅ্যাকশন পরিচালনা করা হয়।


কন্ট্রোলার কী?

Controller হলো MVC (Model-View-Controller) আর্কিটেকচারের একটি অংশ যা ইউজারের অনুরোধের ভিত্তিতে Model থেকে ডেটা নিয়ে তা View এর মাধ্যমে প্রদর্শন করে। কন্ট্রোলার ক্লাসগুলির মধ্যে সাধারণত একাধিক অ্যাকশন মেথড থাকে, যা HTTP অনুরোধের জন্য রেসপন্স তৈরি করে।


কন্ট্রোলার তৈরি করার পদ্ধতি

১. Visual Studio দিয়ে কন্ট্রোলার তৈরি করা

  1. Visual Studio চালু করুন এবং একটি ASP.Net Core MVC প্রজেক্ট খুলুন।
  2. Solution Explorer থেকে Controllers ফোল্ডারটি সিলেক্ট করুন।
  3. Add মেনু থেকে New Item নির্বাচন করুন।
  4. Add New Item উইন্ডো থেকে Class নির্বাচন করুন এবং ক্লাসের নাম দিন, যেমন HomeController.cs
  5. কন্ট্রোলার ক্লাসের ভিতরে নিচের মতো কোড লিখুন:

    using Microsoft.AspNetCore.Mvc;
    
    public class HomeController : Controller
    {
        // GET: /Home/
        public IActionResult Index()
        {
            return View();
        }
    
        // GET: /Home/About
        public IActionResult About()
        {
            return View();
        }
    
        // GET: /Home/Contact
        public IActionResult Contact()
        {
            return View();
        }
    }
    

২. ASP.Net Core MVC কন্ট্রোলারের বেসিক স্ট্রাকচার

কন্ট্রোলার ক্লাসটির উপরে Controller ক্লাসের একটি ডেরিভেটিভ হওয়া উচিত, এবং প্রতিটি অ্যাকশন মেথডের মধ্যে সাধারণত IActionResult রিটার্ন টাইপ থাকে। নিচে একটি বেসিক কন্ট্রোলারের কোড দেখানো হলো:

using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
    // Index Action
    public IActionResult Index()
    {
        return View();
    }

    // About Action
    public IActionResult About()
    {
        return View();
    }
}

কন্ট্রোলার মেথডের বিভিন্ন ধরনের HTTP অ্যাকশন

কন্ট্রোলারে সাধারণত HTTP এর বিভিন্ন মেথডের জন্য আলাদা অ্যাকশন মেথড থাকে। কিছু সাধারণ HTTP অ্যাকশন মেথড:

১. GET মেথড

  • সাধারণত ভিউ রেন্ডার করার জন্য ব্যবহৃত হয়, যেমন একটি পেজ লোড করা।

    public IActionResult Index()
    {
        return View();
    }
    

২. POST মেথড

  • ব্যবহারকারীর থেকে ডেটা গ্রহণ করার জন্য ব্যবহৃত হয়, যেমন ফর্ম সাবমিট।

    [HttpPost]
    public IActionResult SubmitForm(MyModel model)
    {
        if (ModelState.IsValid)
        {
            // ডেটা প্রক্রিয়া করুন
        }
        return View();
    }
    

৩. PUT মেথড

  • সাধারনত ডেটা আপডেট করার জন্য ব্যবহৃত হয়।

    [HttpPut]
    public IActionResult UpdateData(int id, MyModel model)
    {
        if (ModelState.IsValid)
        {
            // ডেটা আপডেট করুন
        }
        return RedirectToAction("Index");
    }
    

৪. DELETE মেথড

  • ডেটা মুছতে ব্যবহৃত হয়।

    [HttpDelete]
    public IActionResult DeleteData(int id)
    {
        // ডেটা মুছুন
        return RedirectToAction("Index");
    }
    

কন্ট্রোলার কনফিগার করা

ASP.Net Core MVC প্রজেক্টে কন্ট্রোলারের রাউটিং এবং কনফিগারেশন Startup.cs ফাইলে করা হয়। এই ফাইলে আপনি কন্ট্রোলারগুলির রাউটিং এবং অন্যান্য কনফিগারেশন সেটআপ করতে পারেন।

১. Routing কনফিগারেশন

Startup.cs ফাইলের মধ্যে Configure মেথডে রাউটিং কনফিগার করা হয়। সাধারণত, UseEndpoints মেথডের মধ্যে কন্ট্রোলারের রাউটিং কনফিগার করা থাকে:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
    }

    app.UseStaticFiles();
    
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

এখানে, {controller=Home} এবং {action=Index} ডিফল্ট কন্ট্রোলার এবং অ্যাকশন সেট করে দিয়েছে। অর্থাৎ, / URL এ যাওয়া হলে স্বয়ংক্রিয়ভাবে HomeController এর Index অ্যাকশন কল হবে।

২. কাস্টম রাউটিং

আপনি কন্ট্রোলারের অ্যাকশনগুলির জন্য কাস্টম রাউটও সেট করতে পারেন:

[Route("products/{id}")]
public IActionResult ProductDetails(int id)
{
    var product = _context.Products.Find(id);
    return View(product);
}

এই কন্ট্রোলারটি /products/5 URL এ গিয়ে ProductDetails অ্যাকশন কল করবে।


কন্ট্রোলারের অ্যাকশন মেথডের রিটার্ন ভ্যালু

কন্ট্রোলারের অ্যাকশন মেথডগুলি সাধারণত IActionResult রিটার্ন করে, তবে আপনি সরাসরি ViewResult, RedirectToActionResult, JsonResult ইত্যাদি রিটার্ন করতে পারেন।

১. ViewResult:

public IActionResult Index()
{
    return View();
}

২. RedirectToActionResult:

public IActionResult RedirectToHome()
{
    return RedirectToAction("Index", "Home");
}

৩. JsonResult:

public IActionResult GetJsonData()
{
    var data = new { Name = "Product", Price = 100 };
    return Json(data);
}

সারাংশ

ASP.Net MVC বা ASP.Net Core MVC এ কন্ট্রোলার তৈরি এবং কনফিগারেশন হলো অ্যাপ্লিকেশনের কার্যকরী অংশ। কন্ট্রোলারের মাধ্যমে HTTP অনুরোধগুলির জন্য ডেটা প্রক্রিয়া এবং ভিউ রেন্ডার করা হয়। কন্ট্রোলারের মধ্যে বিভিন্ন অ্যাকশন মেথড থাকে যা HTTP এর বিভিন্ন মেথডের জন্য রেসপন্স তৈরি করে। কন্ট্রোলারের রাউটিং কনফিগারেশনের জন্য Startup.cs ফাইলের মধ্যে সেটআপ করা হয়।

Content added By
Promotion